package com.yqy.wordvideodemo.permission;

import android.content.Intent;


import com.yqy.wordvideodemo.permission.bean.AppPermission;

import java.util.List;


/**
 * @CreateTime: 2019/7/31
 * @Author: Desol
 * @AssociatedPage:
 * @Description:
 */
public interface IXPermissionCallback {
    void onAcceptedAll();

    /**
     * 权限同意的回调，有三种情况：
     * （1）用户点击授权了一个或多个权限
     * （2）之前已经同意了无需再授权此权限
     * （3）系统版本小于M
     *
     * @param permissions 用户同意授权的权限列表
     */
    default boolean onAccepted(List<AppPermission> permissions) {
        return false;
    }

    /**
     * 权限拒绝的回调，可以引导用户到权限申请页同意一个或多个权限，只有一种情况：
     * （1）用户点击拒绝授权一个或多个权限
     *
     * @param permissions 用户拒绝授权的权限列表
     */
    default boolean onDenied(List<AppPermission> permissions) {
        return false;
    }

    /**
     * 权限拒绝的回调，你可以选择重写它并在里面处理逻辑，如引导用户到权限申请页同意一个或多个权限
     * 只有一种情况：
     * （1）没用户点击拒绝授权一个或多个权限，并勾选了don’t ask again
     *
     * @param permissionsDenied 用户拒绝授权的权限列表
     * @param permissionsReject 用户拒绝授权并勾选了don’t ask again的权限列表
     */
    default boolean onDeniedAndReject(List<AppPermission> permissionsDenied, List<AppPermission> permissionsReject) {
        return false;
    }

    /**
     * 从系统设置界面回来
     *
     * @param permissions 未通过的权限
     * @param requestCode
     * @param resultCode
     * @param data
     */
    default boolean onActivityResult(String[] permissions, int requestCode, int resultCode, Intent data) {
        return false;
    }
}
